const express = require("express");
const path = require("path");
const app = express();
const userList = [
	{
		id:1,
		username:"张子豪",
		voteNum:60
	},{
		id:2,
		username:"高铭挚",
		voteNum:61
	},{
		id:3,
		username:"倪锦堋",
		voteNum:10
	}, {
		id:4,
		username:"王中原",
		voteNum:3
	}
];
app.use(function(req,res,next){
	res.set("Access-Control-Allow-Origin","*");
	res.set("Access-Control-Allow-Headers","*");
	next();
})
// 中间件
// 将 server.js 所在目录的上一级目录（code)作为静态资源目录
// 可以直接通过服务访问静态资源目录中的文件
app.use(express.static(path.resolve(__dirname,"../")))
app.use(express.json());// 如果请求体的数据格式为application/json,那么会将其转为对象赋值给req.body
app.use(express.urlencoded());// 如果请求体的数据格式为application/x-www-form-urlencoded,那么会将其转为对象赋值给req.body
// 1- 请求方式 get
// 2- 请求地址 /userList
// 3- 不需要传递参数
// 4- 响应结果 { ok:1,data:[] }
app.get("/userList",(req,res)=>{
	res.json({
		ok:1,
		data:userList
	})
})

// 1- 请求方式 get
// 2- 请求地址 /vote
// 3- 传递参数：http://127.0.0.1/vote/{id}
// 4- 响应结果：{ok:1,info:投票信息,msg:'失败'}
app.get("/vote/:id",(req,res)=>{
	const {id} = req.params;
	// 根据ID找到用户信息
	const info = userList.find(v=>v.id === id/1);
	if(info){
		info.voteNum+=1;
		res.json({
			ok:1,
			info
		})
	}else{
		res.json({
			ok:-1,
			msg:"用户不存在"
		})
	}
})

// 请求方式：get
// 请求地址：/sum
// 传递参数：?a=10&b=20
// 响应结果：{ok:1,sum:30}
app.get("/sum",(req,res)=>{
	const {a,b} = req.query;
	res.set("token","123456");
	// res.set("Access-Control-Allow-Origin","*");
	res.json({
		ok:1,
		sum:a/1+b/1  //  将字符串转为数字 除1即可
	})
})
// post
app.post("/sum",(req,res)=>{
	console.log(req.body);
	// res.set("Access-Control-Allow-Origin","*");
	const {a,b} = req.body;
	res.json({
		ok:1,
		sum:a/1+b/1
	})
})

app.get("/my",(req,res)=>{
	res.send("fn(1);")
})

app.listen(80,()=>{
	console.log("success")
})